一些DOS脚本整理
撰写时间: 2021-01-06 总共: 1088 字 转载请注明: BY-SA 4.0(除特别声明或转载文章外)
生成文件命令列表用以PLSQL命令窗口使用
@echo off
set filename=C:\Users\temp
::前缀
set prefix=@
::生成文件名列表 取消以下注释并置前缀为空
::dir /b *.sql >%filename%
::生成命令行文件名列表 取消以下注释并置前缀为@
::dir /b /s *.sql >%filename%
echo 文件路径:%filename%
echo start...
for /f "tokens=*" %%i in (%filename%) do echo %prefix%%%i>>$
move $ %filename%
echo end...
pause
根据文件夹描述创建文件夹
@echo off
color 0a
echo 请输入文件夹内容描述
set /p dir_des=
::YYYYMMDDHHmmss 格式
set prefix=AML
set date_text=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
set file_dir="%prefix%-%date_text%-%dir_des%"
md %file_dir%
cd %file_dir%
echo ###%date_text%-%dir_des%>README.txt
echo end...
exit
替换文件名与文件内容,处理得稍微复杂。
根据一个数据文件 data.csv 其中对应的列与值进行匹配替换
文件夹层级如下
dir
old/
new/
data.csv
R.bat
::R.bat
@echo off
:: 需要替换文件名或者文件内容的文件夹
set file=.\old\
:: 替换后的文件夹
set newfile=.\new\
:: 映射关系 (filname,newfilename,value,newvalue)
set data=.\data.csv
for /f "usebackq tokens=1-4 delims=," %%a in (%data%) do (
echo %%a %%b %%c %%d
setlocal enabledelayedexpansion
for /f "delims=" %%i in (%file%%%a) do (
set aa=%%i
set aa=!aa:%%c=%%d!
echo !aa!>>"%newfile%%%b.tmp"
)
move "%newfile%%%b.tmp" "newfile%%%b"
)
echo end...
pause
批量改后缀,删除文件等
ren *.txt *.sql
del /a /f /s /q "*.~sql"